home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / tutorial / t8 / cannon.cpp.z / cannon.cpp
C/C++ Source or Header  |  2002-04-08  |  910b  |  46 lines

  1. /****************************************************************
  2. **
  3. ** Implementation CannonField class, Qt tutorial 8
  4. **
  5. ****************************************************************/
  6.  
  7. #include "cannon.h"
  8. #include <qpainter.h>
  9.  
  10.  
  11. CannonField::CannonField( QWidget *parent, const char *name )
  12.         : QWidget( parent, name )
  13. {
  14.     ang = 45;
  15.     setPalette( QPalette( QColor( 250, 250, 200) ) );
  16. }
  17.  
  18.  
  19. void CannonField::setAngle( int degrees )
  20. {
  21.     if ( degrees < 5 )
  22.     degrees = 5;
  23.     if ( degrees > 70 )
  24.     degrees = 70;
  25.     if ( ang == degrees )
  26.     return;
  27.     ang = degrees;
  28.     repaint();
  29.     emit angleChanged( ang );
  30. }
  31.  
  32.  
  33. void CannonField::paintEvent( QPaintEvent * )
  34. {
  35.     QString s = "Angle = " + QString::number( ang );
  36.     QPainter p( this );
  37.     p.drawText( 200, 200, s );
  38. }
  39.  
  40.  
  41. QSizePolicy CannonField::sizePolicy() const
  42. {
  43.     return QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
  44. }
  45.  
  46.